Non-blocking internet backbone network

ABSTRACT

A method and system for computing the maximum amount of admissible ingress and egress traffic of each edge router of the MPLS core network is presented. As long as the ingress and egress traffic amounts are below the admissible amount limit, traffic routes through any link in the network will never exceeds the link capacity. A calculation scheme and a load-distribution scheme make an Internet MPLS backbone network non-blocking. The output of the route computation algorithm includes a set of paths for any source-destination pair and the load distribution ratios among the paths. The routing algorithm and the associated distribution scheme will determine how to balance the loads that meet the distribution requirements specified by the ratios computed from the route algorithm. This greatly simplifies call admission control and allows hard QoS to be supported in a large scale and cross domains in the Internet.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of previously filed provisionalapplication entitled “QoS Routing Methods and the Design of aNon-Blocking Internet Backbone Network,” filed on Feb. 7, 2005, withserial number 60/650,341, and the entire disclosure of which is hereinincorporated by reference.

BACKGROUND

1. Field of the Invention

This invention relates to techniques for maintaining the hard quality ofservice (QoS) of the developing Internet. In particular, it relates to amethod and system for controlling the admissible ingress and egresstraffic of edge routers of the Multiprotocol Label Switching (MPLS) corenetwork for achieving a non-blocking Internet backbone network.

2. Description of Related Art

Internet Protocol (IP) networks are traditionally designed to support abest-effort service, with no guarantees on the reliability and thetimely delivery of the packets. As IP networks mature and areincreasingly been used to support real-time applications, such as voiceonto IP-based platforms, the existing IP networks need to provide a newlevel of QoS for such new applications. Differentiated Services(DiffServ) and MPLS have become the main QoS architecture for theInternet. DiffServ avoids per-flow bandwidth reservation inside thenetwork. It classifies flows into aggregates (classes), and providesappropriate QoS for the aggregates. A small bit-pattern in eachpacket—the ToS octet of Ipv4 or the Traffic Class octet of Ipv6—is usedto mark a packet for receiving a particular forwarding treatment at eachnetwork node. A service level agreement (SLA), is signed between aservice providers and customers to specify the type of services and theamount of traffic required for each type. An SLA codifies what aprovider promises to deliver in terms of what, how, and associatedpenalties for failures.

QoS requirements of SLAs need to be achieved with components in both thedata-plane and the control-plane. Data-plane components include trafficshaping and policing, traffic classification, scheduling and buffermanagement. Control-plane components include SLA creation andconfiguration, signaling and SLA admission control (SAC) and networkprovisioning/traffic engineering. Effective implementations ofdata-plane components are well understood and available; only localstate information in a router or switch is required. In contrast,control-plane components, such as SAC and network dimensioning, remainopen issues. The challenges of the control-plane design arise from thefact that the implementations of control-plane components need the stateinformation of the entire network. Typically there are millions of flowstraveling through a high-speed link, and therefore maintaining the stateinformation of all links of the entire network is simply not practical.

There are several proposals for SAC. The general concerns about theseproposals include the following.

(a) Scalability and Effectiveness: referring to FIG. 1, the networkequipment that performs provisioning, resource management and SAC iscalled bandwidth broker (BB). BB architecture implies that admissioncontrol decisions are made at a central location for each administrativedomain, such as ISP A 101 and ISP B 105. Although the cost of handlingservice requests is significantly reduced, it is unlikely that thisapproach can be scaled upward for large networks. In order to cope withscalability, most relevant studies adopt distributed admission controlschemes, which are further distinguished into model-based andmeasurement-based approaches. Both approaches assess QoS deteriorationprobability upon service request arrivals; model based approachesmaintain state information for active services and employ mathematicalmodels, whereas measurement-based approaches rely on either passive oractive aggregate measurements. The main concern is the effectiveness ofthe schemes. The centralized SAC, although not scalable, can providebetter QoS than the distributed admission control scheme.

(b) Applicabilityy to Inter-domain QoS All SAC schemes must fullyaddress the inter-domain QoS issues. It is anticipated that there willbe significant variation in the implementations and resource managementstrategies from one ISP to another. It is unlikely that we will find aunified approach across the Internet. Cascading different QoS approacheswill work only if they cooperate with each other. That is difficult toachieve. For example, if one network uses measurement-based SAC and theother uses model-based SAC, it is unlikely that the end-to-end QoS canbe achieved as anticipated for an SLA path passing through the twonetworks

While some QoS capabilities based on isolating voice traffic over IP arecurrently evolving (e.g., DiffServ, MPLS), providing end-to-end QoS at alarge scale and across domain boundaries remains a challenging andunsolved problem. Thus a need exists for designing a new and practicalSAC scheme to maintain the QoS in the future Internet.

SUMMARY

This invention uses the concept of non-blocking network to solve the QoSproblem and simplify the SAC design of the fuiture Internet. Among theadvantages of the invention comprise one or more of the following: oneadvantage of the claimed invention is to provide a non-blocking network.A network is called non-blocking if it can always accommodate a new SLAas long as the source and destination routers have capacity to set upthe flow. One advantage of the invention is that, if a network isnon-blocking, its SAC will be greatly simplified as we do not need tocheck the capacity utilization of all internal links. According to themethod and system of this invention, only the ingress and egress pointsneed to be verified for accepting a new SLA. As demonstrated in FIG. 2,assuming a new SLA from router A 201 to router D 205 needs to be added.If the network is non-blocking, we only need to check if the ingressrouter (i.e. router A 201) and the egress router (i.e. router D 205)have capacity to accommodate the new SLA. The complex task of monitoringeach link inside the network, such as links 210, 215, 220, 225, and 230,can be avoided.

Given anetwork topology and its link capacities, the present inventionprovides a way to determine a set of paths for any givensource-destination pair in an MPLS network and the maximum admissibleingress and egress traffic. As long as the ingress and egress traffic iswithin this specified amount and the routing follows the determinedpaths and the associated load-distribution scheme, none of the internallinks will ever exceed the link capacity. Thus, the network isnon-blocking internally. As an added advantage, the techniques are wellsuited for the class of traffic demanding the best QoS, but can also beused with other types of data traffic.

Yet another advantage of this invention is the flexibility in the“turning-on” and “turning-off” of the method and system of the inventionaccording to other relevant considerations in the overall busutilization or overall performance.

A SAC scheme is invented which decides whether a new SLA can be added tothe network. The SAC scheme only requires the source and destinationedge routers to monitor their ingress and egress traffic situations andthere is no need to check the state information of internal links of thenetwork. The SAC scheme also includes a load-distribution scheme tobalance the loads among the paths assigned for each source-destinationpair.

Additional constraints can be added to the paths generation scheme. Forexample, we can specify that a maximum of k routes will be used for anygiven source-destination pair, or we can specify the hop-count limit forall the paths. We then use the algorithm described in the patent tocompute the maximum admissible ingress and egress traffic. As long asthe total ingress and egress traffic is within the admissibleconstraints, the network is still non-blocking.

Furthermore, we can set an arbitrary amount as the admissible ingressand egress traffic constraints and compute the capacities of internallinks of the network such that the network is non-blocking. Along withthe internal link capacities are the paths for each source-destinationpair and the associated load-distribution ratios among these paths.

In yet another aspect of the invention deals with link failure. When alink fails, the techniques in the patent can determine the amount ofadmissible traffic we need to reduce to keep the non-blocking propertiesof the network. Except the paths affected by the link failure, all theother paths remain unchanged (Prof. Lea, this aspect is not discussedanywhere else. Do you want to keep this still?).

Further features of the invention, its nature and various advantageswill be more apparent from the accompanying drawings and the followingdetailed description of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic representation of the traditional bandwidth brokerinfrastructure.

FIG. 2 is a schematic representation of internal links connecting thevarious edge routers within a network.

FIG. 3(a) is a schematic representation of a protocol processor.

FIG. 3(b) is a schematic representation of a sample balancing scheme.

Like reference numbers and designations in the different figuresindicate like elements.

DETAILED DESCRIPTION

This invention involves the novel design of a non-blocking network. Inthis invention, a method and a system for determining trafficconstraints, routes, and load-distribution among the routes to achievenon-blocking inside an MPLS Internet backbone network are implemented.

The invention will be illustrated in conjunction with illustrativeembodiments of a network and an associated route computation andload-distribution scheme. It should be understood, however, that theinvention is not limited to use with the particular network system ornode implementation described, but is instead more generally applicableto any route computation algorithm that intends to make networknon-blocking.

Assume a network has n edge routers. The techniques of this inventionwill produce the following outputs.

The ingress and egress admissible traffic constraints, denoted by(α_(i), β_(i)), 1≦i≦n, of all edge routers. This determines how muchtraffic each edge router can inject into or receive from the networkwithout causing overflow on any link

The routing method will generate a fixed number of paths, say 4 in ourexample, between any pair of nodes. The four paths from edge router i toedge router j are denoted by p_(y) ¹, p_(y) ², p_(y) ³, p_(y) ⁴ and theassociated load-balancing ratios v_(y) ¹, v_(y) ², v_(y) ³, v_(y) ⁴. Forall traffic from edge router i to edge router j, the network will splitthe load among the paths according to the ratios v_(BC) ¹, v_(BC) ²,v_(BC) ³, v_(BC) ⁴.

Referring to FIG. 2, which illustrates a network 200 with, for example,six routers which are all edge routers: router A 201, router B 203,router C 204, router D 205, router E 207, router F 209. All routers201-207 are connected to the outside world. All links, such as link AB201, link BC 216, link CD 220, link DF 225, and link EA 230, have thesame capacity of 1 unit on both directions and all edge routers have thesame admissible ingress and egress traffic constraints—that is,α_(i)=β_(i)=γ, 1≦i≦n. Using our techniques, we find the following:

1. γ=2, where γ is the amount of traffic that any router A 201, B 203, C204, D 205, E 207, F 209 can only inject into or receive from thenetwork.

2. A set of paths for each (source, destination) pair. We can use (A, B)and (A,D) as an example. The rest of the paths can be deducedaccordingly

-   -   (i) (A, B): three paths: A-B 210, A-C-B, A-F-B. The        load-balancing ratios are 0.5, 0.25, 0.25.    -   (ii) (A,D): A-B-D, A-C-D, A-E-D, A-F-D. Each path gets 0.25 of        traffic from A to D.    -   (iii) Because of symmetry of the network, we can derive the        paths and split ratios for other pairs as well. For example, for        (A, C) we use three paths: A-C (0.5), A-E-C (0.25) and A-B-C        (0.25).

Consider the traffic injected by all routers into the network. As longas the total amount does not exceed 2 and as long as the destinationrouters will not receive more than 2 from all the routers, it can beverified that the traversing traffic on any internal link will neverexceed 1 regardless of the distribution of the traffic inside thenetwork. This make the SAC decision of a new SLA easy because we onlyneed to check the source and destination routers and see if adding thenew SLA will violating the ingress and egress admissible constraints.For example, suppose we want to set up a new SLA with rate=0.5 from A201 to B 203. We first check if B (203)'s current load has exceeded 1.5.If not, accept the SLA. Otherwise, reject it. We don't need to check thestatus of each link inside.

The techniques can also answer the reversed question: What is theinternal link bandwidth that can make the network non-blocking for γ=3?The answer is 1.5. It is easily derived from the example by just scalingup the link capacity accordingly. To implement the scheme, the lookupengine in a router needs to do load-balancing according to the computedload-balancing ratios. It also needs to do this without causingout-of-sequence transmissions. There are many ways to do the loadbalancing. One example is shown in FIG. 3. FIG. 3(a) shows a standardprotocol processor 300. FIG. 3(b) is a schematic representation of aload-balancing unit with the lookup table engine 310 conducting loadbalancing according to computed load-balancing ratios. The hashingperformed by the unit 305 maps the hose number field of the IP addressinto a random number between [0, M]. Bases on the result we select apath. For example, if the range is [0,99 ] and there are threepre-determined paths with load-distribution ratios: 0.2, 0.4, 0.4. Ifthe output of the hashing unit 305 is between [0, 19], we use the firstpath. If it is in the range [20,59], the second path; if in the range[60,99], the third path. Alternatively, We can also use (destinationhost+TCP channel) as the input of the hashing unit. This can doload-balancing with a finer granularity.

Path Setup Algorithns for Non-blocking Backbone Networks

Let (θ{tilde over (α)}_(i), θ{tilde over (β)}_(i)) represent the maximumamount of ingress and egress traffic allowed to enter the network at theedge router i, where {tilde over (α)}_(i) and {tilde over (β)}_(i) areconstants describing the degree of unevenness of traffic patterns in thenetwork and θ is a parameter to be maximized in our design. For example,suppose ({tilde over (α)}₁=5, {tilde over (β)}₁=5) and ({tilde over(α)}₂=15, {tilde over (β)}₂=15), then the traffic allowed at edge router2 is three times that of router 1. Note that only the relative—notabsolute—magnitudes of {tilde over (α)}_(i) and {tilde over (β)}_(i)have significance as the real amount of admissible traffic is determinedby θ.

We assume the network has n edge routers and the ingress and egressbandwidth constraints of each router are given in the following HvectorsH=[(θ{tilde over (α)}₁, θ {tilde over (β)}₁), . . . (θ {tilde over(β)}_(n))]   (1)

Compared with a conventional traffic matrix T={d_(if)}, where d_(if)represents the traffic rate from node i to node j, we must have${\sum\limits_{j}d_{ij}} \leq {\theta\quad{\overset{\sim}{\alpha}}_{i}\quad{and}\quad{\sum\limits_{i}d_{ij}}} \leq {\theta\quad{{\overset{\sim}{\beta}}_{j}.}}$For a given H, there are many traffic matrices Ts that satisfy theconstraints imposed by H. A traffic matrix T={d_(if)} that does notviolate the constraints imposed by H is called a valid traffic matrix.Let D be the set of all valid Ts.

The backbone network can be described as a directed graph G (V, E) withcapacity Ce for link eε E. Let Q⊂V be the set of edge routers of thebackbone network with n=||Q||. So Q is the set of edge nodes, orprovider edge (PE) routers defined in a MPLS network, that to theoutside world. Let x_(if) ^(e) represent the portion of traffic fromnode i ∈ Q to j ∈ Q that is routed through link e and 0≦x_(if) ^(e)≦1.Once we have x_(if) ^(e), we have determined the paths from edge routeri to j. Our routing techniques determine two things:

The traffic allocation variables x_(if) ^(e).

The maximum ingress and egress bandwidth (θ{tilde over (α)}_(i), θ{tildeover (Note that {tilde over (α)}₁, {tilde over (β)}₁ are given) that canbe admitted to the network at edge router i without destroying thenon-blocking property of the backbone network.

The patent describes several methods to compute the routes and themaximum θ such that the backbone network is non-blocking. Define linkutilization for a link as the ratio of total traffic going though thelink over the link capacity. The congestion ratio, denoted by r, of anetwork is defined as the maximum link utilization of all links. Whenr >1 for a link, it means that overflow will occur on that link and itsvalue indicates the amount of excessive traffic on that link. Our firstmethod will compute the maximum admissible ingress and egress traffic ateach node based on the concept of congestion ratio. By computing theminimum r, we thus maximize the amount of admissible ingress and egresstraffic. The problem is formulated as a linear programming problem. Theresults also include the routes for every ingress and egress pair.

METHOD 1

The link congestion ratio is defined as the ratio of the amount oftraffic routed through a link over the link's capacity. The networkcongestion ratio, denoted by r, is defined as the maximum value of allits link congestion ratios. We first assume the ingress and the egresstraffic constraints at edge router i are ({tilde over (α)}_(i), {tildeover (β)}_(i)). We then compute the congestion ratio r. If we change theingress and the egress traffic to$( {\frac{{\overset{\sim}{\alpha}}_{i}}{r},\frac{{\overset{\sim}{\beta}}_{i}}{r}} ),$then the congestion ratio of the network will be ≦1. The maximumadmissible amount of traffic at edge router i is thus$( {\frac{{\overset{\sim}{\alpha}}_{i}}{r},\frac{{\overset{\sim}{\beta}}_{i}}{r}} ).$The problem of maximizing θ is now converted to the minimization of r asθ=1/r. Method 1 shows how to use linear programming to find a routingthat minimizes r.Master LP $\begin{matrix}{{{Master}\quad{LP}}{\min\quad r}} & \quad \\{{{{s.t.\quad{\sum\limits_{e \in {\Gamma^{+}{(v)}}}x_{ij}^{e}}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = {0\quad i}},{j \in Q},{v \neq i},j} & ( {2a} ) \\{{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}x_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = {1\quad i}},{j \in Q},{v = i}} & ( {2b} ) \\{{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}x_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = {{- 1}\quad i}},{j \in Q},{v = j}} & ( {2c} ) \\{{{{\sum\limits_{i,{j \in Q}}{x_{ij}^{e}d_{ij}}} \leq {{c_{e} \cdot r}\quad e}} \in E},{T \in D}} & ( {2d} ) \\{{0 \leq x_{ij}^{e} \leq {1\quad i}},{j \in Q},{e \in E}} & ( {2e} )\end{matrix}$

where (2d) is the bandwidth constraint. Constraint (2d) needs to includeall valid traffic 5 matrixes. We can use a slave program to find the Tthat should be included in constraint (2d). The process worksiteratively.Slave LP Slave  LP $\max{\sum\limits_{i,{j \in Q}}{x_{ij}^{e}d_{ij}}}$$\begin{matrix}{{{s.t.{\sum\limits_{j \in Q}d_{ij}}} \leq {{\overset{\sim}{\alpha}}_{i}\quad i}} \in Q} & ( {3a} ) \\{{{\sum\limits_{i \in Q}d_{ij}} \leq {{\overset{\sim}{\beta}}_{j}\quad j}} \in Q} & ( {3b} )\end{matrix}$

Method 1 is summarized in the following steps below. begin Solve Eq. (2)without constraint (2d) and get the solution x_(ij) ^(e) and r. repeat D= Ø; (a) for e := 1 to E do$2.\quad{Solve}\quad{{Eq}.\quad(3)}\quad{and}\quad{get}\quad{the}\quad{solution}\quad d_{ij}\quad{and}\quad{\sum\limits_{i,{j \in Q}}^{\quad}{x_{ij}^{e}{d_{ij}.}}}$${3.\quad{if}\quad{\sum\limits_{i,{j \in Q}}^{\quad}{x_{ij}^{e}d_{ij}}}} \geq {{c_{e} \cdot r}\quad{then}}$4. Put traffic matrix T = {d_(ij)} to D 5. end if (b) end for (c) Addnew capacity constraints (2d) to Eq. (2), solve it, and get the newsolution x_(ij) ^(e) and r. until no traffic matrix is in D end

METHOD 2

We can combine Eqs. (2)-(3) into one linear programming formulationgiven in Method 2. min   r $\begin{matrix}{{{{s.t.{\sum\limits_{e \in {\Gamma^{+}{(v)}}}x_{ij}^{e}}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = {0\quad i}},{j \in Q},{v \neq i},j} & ( {4a} ) \\{{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}x_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = {1\quad i}},{j \in Q},{v = i}} & ( {4b} ) \\{{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}x_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = {{- 1}\quad i}},{j \in Q},{v = j}} & ( {4c} ) \\{{{{\sum\limits_{i \in Q}{{\overset{\sim}{\alpha}}_{i}{\pi_{e}(i)}}} + {\sum\limits_{i \in Q}{{\overset{\sim}{\beta}}_{i}{\lambda_{e}(i)}}}} \leq {{c_{e} \cdot r}\quad e}} \in E} & ( {4d} ) \\{{x_{ij}^{e} \leq {{\pi_{e}(i)} + {{\lambda_{e}(j)}\quad i}}},{j \in Q},{e \in E}} & ( {4e} ) \\{{0 \leq x_{ij}^{e} \leq {1\quad i}},{j \in Q},{e \in E}} & ( {4f} ) \\{{\pi_{e}(i)},{{{\lambda_{e}(i)} \geq {0\quad i}} \in Q},{e \in E}} & ( {4g} )\end{matrix}$

METHOD 3

We can transform Eq. (4) into a different master-slave LP formulationthat renders a very fast implementation.

Let f_(if) ^(e)=x_(if) ^(e)θ. Since θ=(1/r), Eq. (4) can be transformedinto Eq. (5) given below. max   θ $\begin{matrix}{{{{s.t.{\sum\limits_{e \in {\Gamma^{+}{(v)}}}f_{ij}^{e}}} - \underset{e \in {\Gamma^{-}{(v)}}}{\sum f_{ij}^{e}}} = {0\quad i}},{j \in Q},{v \neq i},j} & ( {5a} ) \\{{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}f_{ij}^{e}} - \underset{e \in {\Gamma^{-}{(v)}}}{\sum f_{ij}^{e}}} = {\theta\quad i}},{j \in Q},{v = i}} & ( {5b} ) \\{{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}f_{ij}^{e}} - \underset{e \in {\Gamma^{-}{(v)}}}{\sum f_{ij}^{e}}} = {{- \theta}\quad i}},{j \in Q},{v = j}} & ( {5c} ) \\{{{{\sum\limits_{i \in Q}{{\overset{\sim}{\alpha}}_{i}{\pi_{e}(i)}}} + {\sum\limits_{i \in Q}{{\overset{\sim}{\beta}}_{i}{\lambda_{e}(i)}}}} \leq {c_{e}\quad e}} \in E} & ( {5d} ) \\{{f_{ij}^{e} \leq {{\pi_{e}(i)} + {{\lambda_{e}(j)}\quad i}}},{j \in Q},{e \in E}} & ( {5e} ) \\{f,\theta,\pi,{\lambda \geq 0}} & ( {5f} )\end{matrix}$

Eq. (5a)-(5c) and (5e) are derived by multiplying both sides of Eq.(4a)-(4c), and (4c) by θ, and Eq. (5d) is derived by moving r to theleft. Note that in Eq. (5), π and λ are scaled by θ if we compare themwith those in Eq. (4). The important fact about Eq. (5) is that it canbe easily decomposed into a master-slave problem which renders a fastimplementation.Master Problem Master  Problem max   θ $\begin{matrix}{{{{s.t.{\sum\limits_{e \in {\Gamma^{+}{(v)}}}f_{ij}^{e}}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}f_{ij}^{e}}} = {0\quad i}},{j \in Q},{v \neq i},j} & ( {6a} ) \\{{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}f_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}f_{ij}^{e}}} = {\theta\quad i}},{j \in Q},{v = i}} & ( {6b} ) \\{{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}f_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}f_{ij}^{e}}} = {{- \theta}\quad i}},{j \in Q},{v = j}} & ( {6c} ) \\{{f_{ij}^{e} \leq {{\pi_{e}(i)} + {{\lambda_{e}(j)}\quad i}}},{j \in Q},{e \in E}} & ( {6d} ) \\{f,{\theta \geq 0}} & ( {6e} )\end{matrix}$Slave Problem Slave  Problem max   θ(ϕ) $\begin{matrix}{{{{s.t.{\sum\limits_{i \in Q}{{\overset{\sim}{\alpha}}_{i}{\pi_{e}(i)}}}} + {\sum\limits_{i \in Q}{{\overset{\sim}{\beta}}_{i}{\lambda_{e}(i)}}}} \leq {c_{e}\quad e}} \in E} & ( {7a} ) \\{\pi,{\lambda \geq 0}} & ( {7b} )\end{matrix}$where ø is the vector consisting of all variables π_(e) (i) and λ_(e)(i).

For a link e, we define(a) φ_(e)=[π_(e)(1), . . . , π_(e)(n), λ_(e)(1), . . . , λ_(e) (n)].  (8)

where n is the number of edge nodes (assuming the set of edge nodes islabeled from 1 to n). Then(a) ø=]φ₁, φ₂, . . . , φ_(m)].   (9)

where m is the number of links in the network. We call ø theresource-allocation vector and its dimension is 2 mn . If ø is known,the master program produces an optimal θ, denoted by θ (ø), for thegiven ø. The slave program then searches a new ø that can increase thefunction θ (ø). The method is summarized in the following steps. Step 0Initialization. Select a sufficiently small value ε > 0 denoting theminimum value of the step size. Set the optimal value z* = 0 and theiteration counter k = 1. Step 1 Determine an initial feasible allocationφ₁. Set π_(e)(i) = c_(e)/(2n · α_(i)), λ_(e)(i) = c_(e)/(2n · β_(i)) fori ∈ Q. Step 2 Solve the Eq. (6). Solve the Eq. (6) based on the currentresource allocation φ_(k). If θ(φ_(k)) > z*, then save the flows, set z*= θ(φ_(k)). Step 3 Determine a new allocation. Compute the subgradientγ_(k). Determine a new allocation φ_(k+1)

φ_(k) + t_(k) · γ_(k). If φ_(k+1) is feasible move to this point.Otherwise, project φ_(k+1) onto the feasible region. Step 4 Check theconvergence. If the step size t_(k) < ε, terminate the algorithm.Otherwise, set k = k + 1 and return to Step 2.

METHOD 4: SETTING PATH LIMIT

We can add a path limit to the algorithms above. Let L be the number ofpaths allowed for each source-destination pair. We first use Method 3 toproduce a set of paths for each source-destination pair. We then selectthe most loaded L paths among those generated by Method 3 (or Method 2).Given the set of paths, we can re-compute θ by solving a linearprogramming problem similar to that given in Eq. (5). The difference isthat path-flow representation, instead of link-flow representation, mustbe used in the formulation. Let P_(if) be the set of paths between thenode pair (i, f), x (p) the amount of flow sent on path p, and δ_(e) (p)a link-path indicator variable, that is, δ_(e) (p) equals 1 if link e iscontained in the path p, and 0 otherwise. Following a similarformulation of Eq. (5), we can use the following linear programmingformulation to find the maximum θ. Method 4 can be easily solved with atypical LP solver. max   θ $\begin{matrix}{{{s.t.{\sum\limits_{p \in P_{ij}}{x(p)}}} = {\theta\quad i}},{j \in Q}} & ( {10a} ) \\{{{{\sum\limits_{i \in Q}{{\overset{\sim}{\alpha}}_{i}{\pi_{e}(i)}}} + {\sum\limits_{i \in Q}{{\overset{\sim}{\beta}}_{i}{\lambda_{e}(i)}}}} \leq {c_{e}\quad e}} \in E} & ( {10b} ) \\{{{\sum\limits_{p \in P_{ij}}{{\delta_{e}(p)}{x(p)}}} \leq {{\pi_{e}(i)} + {{\lambda_{e}(j)}\quad i}}},{j \in Q},{e \in E}} & ( {10c} ) \\{x,\theta,\pi,{\lambda \geq 0}} & ( {10d} )\end{matrix}$

The foregoing description of the invention has been presented forpurposes of illustration and description. It is not intended to beexhaustive or to limit the invention to the precise embodimentsdisclosed. The invention, for example, can be implemented in a computingsystem with one or more programmable processors executing a computerprogram to perform functions of the invention. Method can also beperformed by, for example, logic circuitry, ASIC, and the like. Theprocessors suitable for execution of a computer program include, forexample, general and specific microprocessors of various kinds ofdigital computers. The computer system may include, for example, adisplay device, a pointing device, an input device, in addition to theprocessor.

Those skilled in the art will readily observe that numerousmodifications and alterations of the device may be made withoutdeparting from the scope, spirit or teachings of the invention. Theinvention is defined by the following claims and their equivalents:

1. A method for establishing service level agreeents in a network with aplurality of routers with predetermined paths, comprising: Computing anadmissible ingress trfic for a source router, Computing an admissibleegress traffic for the source router, Computing an admissible ingresstraffic fbr a destination router, Computing ani admissible egresstraffic for the destination router; and Adding a sevce level agreementto the network using the predetermined paths between the source and thedestination router if the admissible ingress and egress traffic for thesource router and the destination router are not exceeded whereby theservice level agreement is added without checking a capacity of internallins of the predetermined paths.
 2. The method of claim 1, wherein thepredetermined pathls are generated according to a hop-count limit. 3.The method of claim 1, wherein the predetermined paths are generatedaccording to a maximum number of allowable paths.
 4. The method of claim1 further comprising the step of generating a load balancing schemeamong the predetermined paths for the added service level agreement. 5.The method of claim 4, wherein the load balancing scheme is based on adestination host number.
 6. The method of claim 4, wherein the loadbalancing scheme I based on a destination host number and a TCP channel.7. The method of claim 1, further comprising calculating a maximumcapacity of the internal links in the network.
 8. The method of claim 1,wherein a maximum admissible ingress and a maximum egress traffic of thesource and destination routers are computed based a congestion ratio. 9.The method of claim 8 where the congestion ratio comprises a minimumvalue r.
 10. The method of claim 9, wherein the minimum value r and thepredetermined paths are solved by a linear programming formulation. 11.The method of claim 10, wherein the linear programming formulationcomprises a master-slave formulation where: Master LP is Master  LP  is${{s.t.\begin{matrix}{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}^{\min\quad r}x_{ij}^{e}} - \quad{\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = 0} & {i,{j \in Q},v}\end{matrix}} \neq i},j$ $\begin{matrix}{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}x_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = 1} & {i,{j \in Q},{v = i}}\end{matrix}$ $\begin{matrix}{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}x_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = {- 1}} & {i,{j \in Q},{v = j}}\end{matrix}$ $\begin{matrix}{{\sum\limits_{i,{j \in Q}}{x_{ij}^{e}d_{ij}}} \leq {c_{e} \cdot r}} & {{e \in E},{T \in D}}\end{matrix}$ $\begin{matrix}{0 \leq x_{ij}^{e} \leq 1} & {i,{j \in Q},{e \in E}}\end{matrix}$ and  Slave  LP    is$\max{\sum\limits_{i,{j \in Q}}{x_{ij}^{e}d_{ij}}}$ $s.t.\begin{matrix}{{\sum\limits_{j \in Q}d_{ij}} \leq {\overset{\sim}{\alpha}}_{i}} & {i \in Q}\end{matrix}$ $\begin{matrix}{{\sum\limits_{i \in Q}d_{ij}} \leq {\overset{\sim}{\beta}}_{j}} & {j \in Q}\end{matrix}$ and where i and j are indices; Q denotes a set of edgerouters; E denotes the internal links, T denotes traffic matrixes;x_(if) ^(e) denotes a portion of traffic from node i to j through a linke and 0≦x_(if) ^(e)≦1; d_(if) represents the traffic rate from node i tonode j; and wherein the maximum admissible traffic of the ingress andegress direction are θ{tilde over (α)}_(i) and θ{tilde over (β)}_(i)with {tilde over (α)}_(i) and {tilde over (β)}_(i) being constants. 12.The method of claim 10, Wherein the linear formulation comprises${{s.t.\begin{matrix}{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}^{\min\quad r}x_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = 0} & {i,{j \in Q},v}\end{matrix}} \neq i},j$ $\begin{matrix}{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}x_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = 1} & {i,{j \in Q},{v = i}}\end{matrix}$ $\begin{matrix}{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}x_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}x_{ij}^{e}}} = {- 1}} & {i,{j \in Q},{v = j}}\end{matrix}$ $\begin{matrix}{{{\sum\limits_{i \in Q}{{\overset{\sim}{\alpha}}_{i}{\pi_{e}(i)}}} + {\sum\limits_{i \in Q}{{\overset{\sim}{\beta}}_{i}{\lambda_{e}(i)}}}} \leq {c_{e} \cdot r}} & {e \in E}\end{matrix}$ $\begin{matrix}{x_{ij}^{e} \leq {{\pi_{e}(i)} + {\lambda_{e}(j)}}} & {i,{j \in Q},{e \in E}}\end{matrix}$ $\begin{matrix}{0 \leq x_{ij}^{e} \leq 1} & {i,{j \in Q},{e \in E}}\end{matrix}$ $\begin{matrix}{{\pi_{e}(i)},{{\lambda_{e}(i)} \geq 0}} & {{i \in Q},{e \in E}}\end{matrix}$ where i and j are indices; Q denotes a set of edgerouters; E denotes the internal links, T denotes traffic matrixes;x_(if) ^(e) denotes a portion of traffic from node i to j through a linke and 0≦x_(if) ^(e)≦1; d_(if) represents the traffic rate from node i tonode J; and wherein the maximum admissible traffic of the ingress andegress direction are θ{tilde over (α)}_(i) and θ{tilde over (β)}_(i)with {tilde over (α)}_(i) and {tilde over (β)}_(i) being constants. 13.The method of claim 10, wherein the linear programming formulationcomprises a master-slave formulation where Master Program is${{s.t.\begin{matrix}{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}^{\max\quad\theta}f_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}\quad f_{ij}^{e}}} = 0} & {i,{j \in Q},v}\end{matrix}} \neq i},j$ $\begin{matrix}{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}f_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}\quad f_{ij}^{e}}} = \theta} & {i,{j \in Q},{v = i}}\end{matrix}$ $\begin{matrix}{{{\sum\limits_{e \in {\Gamma^{+}{(v)}}}f_{ij}^{e}} - {\sum\limits_{e \in {\Gamma^{-}{(v)}}}f_{ij}^{e}}} = {- \theta}} & {i,{j \in Q},{v = j}}\end{matrix}$ $\begin{matrix}{f_{ij}^{e} \leq {{\pi_{e}(i)} + {\lambda_{e}(j)}}} & {i,{j \in Q},{e \in E}}\end{matrix}$ f, θ ≥ 0 Slave  Program  is $\begin{matrix}{{{s.t.{\sum\limits_{i \in Q}^{\max\quad{\theta{(\phi)}}}{{\overset{\sim}{\alpha}}_{i}{\pi_{e}(i)}}}} + {\sum\limits_{i \in Q}{{\overset{\sim}{\beta}}_{i}{\lambda_{e}(i)}}}} \leq c_{e}} & {e \in E}\end{matrix}$ π, λ ≥ 0 and where ø=[ø₁, ø₂, . . . , ø_(m)] andø_(●)=[π_(●) (1), . . . , λ_(●) (n), π_(●) (1), . . . , π_(●) (n)], n isthe number of edge nodes from 1 to n, m is the number of links in thenetwork, θ=1/r; and where ie Master Program produces an θ denoted byθ(ø) for the given ø and the slave program searches a new value of øthat increases the function θ(ø).
 14. The method of claim 10, furthercomprising the step of limiting the predetermined paths.
 15. The methodof claim 14, wherein the step of limiting the predetermined pathscomprises solving a linear programming solver for the predeterminedpaths comprising $\begin{matrix}{{s.t.{\sum\limits_{p \in P_{ij}}^{\max\quad\theta}{x(p)}}} = \theta} & {i,{j \in Q}}\end{matrix}$ $\begin{matrix}{{{\sum\limits_{i \in Q}{{\overset{\sim}{\alpha}}_{i}{\pi_{e}(i)}}} + {\sum\limits_{i \in Q}\quad{{\overset{\sim}{\beta}}_{i}{\lambda_{e}(i)}}}} \leq c_{e}} & {e \in E}\end{matrix}$ $\begin{matrix}{{\sum\limits_{p \in P_{ij}}{{\delta_{e}(p)}{x(p)}}} \leq {{\pi_{e}(i)} + {\lambda_{e}(j)}}} & {i,{j \in Q},{e \in E}}\end{matrix}$ x, θ, π, λ ≥ 0 wherein θ denotes the maximum ingress andegress traffic, x(p) denotes an amount of flow sent on path p_(e) δ₆ (p)a link-path indicator variable such that δ_(e) (p) equals 1 if a link eis contained in the path p else
 0. 16. A computer program product,tangibly embodied in an information carrier, for establishing servicelevel agreements among a plurality of routers with predetermined pathsin a network, said computer program product comprises instructionsoperable to cause data processing apparatus to: Compute an admissibleingress traffic, for a source router; Compute an admissible egresstraffic for the source router; Compute an admissible ingress traffic fora destination router Compute an admissible egress traffic for thedestination router; and Add a service level agreement to the networkusing the predetermined paths between the source and the destinationrouter if the admissible ingress and egress traffic for the sourcerouter and the destination router are not exceeded whereby the servicelevel agreement is added without checking a capacity of internal linksof the predetermined paths.
 17. The computer program product of claim16, wherein the predetermined paths are generated according to ahop-count limit.
 18. The computer program product of claim 16, whereinthe predetermined paths are generated according to a maximum number ofallowable paths.
 19. The computer program product of claim 16, furthercomprising instructions to generate a load balancing scheme among thepredetermined paths for the added service level agreement.
 20. Thecomputer program product of claim 19, wherein the load balancing schemeis based on a destination host number.
 21. The computer program productof claim 19, wherein the load balancing scheme I based on a destinationhost number and a TCP channel.
 22. The computer program product of claim16, further comprising instructions to calculate a maximum capacity ofthe internal links in the network.
 23. The computer program product ofclaim 16, wherein a maximum admissible ingress and a maximum egresstraffic of the source and destination routers are computed based acongestion ratio.
 24. The computer program product of claim 23, whereinthe congestion ratio comprises a minimum value r.
 25. The computerprogram product of claim 24, wherein the minimum value r and thepredetermined paths are solved by a linear programming formulation. 26.A system for establishing service level agreements in a network with aplurality of routers with predetermined paths, comprising apparatus forenabling the steps of. Computing an admissible ingress traffic for asource router, Computing an admissible egress traffic for the sourcerouter; Computing an admissible ingress traffic for a destinationrouter; Computing an admissible egress traffic for the destinationrouter; and Adding a service level agreement to the network using thepredetermined paths between the source and the destination router if theadmissible ingress and egress traffic for the source router and thedestination router are not exceeded whereby the service level agreementis added without checking a capacity of internal links of thepredetermined paths.